The present invention relates to data networking and more particularly, in certain implementations, to systems and methods for gracefully disabling LDP label switching on selected link(s) between two routers that are connected by multiple parallel links.
MPLS (Multi-Protocol Label Switching) represent an evolution in the routing architecture of IP networks. Benefits include, e.g., better price/performance in routers, scalability, better integration with circuit switched technologies such as Frame Relay and ATM, the ability to implement layer 2 and layer 3 virtual private networks, and improved control of traffic characteristics.
In one simple MPLS scenario, at the ingress of the network, labels are assigned to each incoming IP packet based on its forwarding equivalence class before forwarding the packet to the next hop node. At each intermediate node, a forwarding selection and a new substitute label are determined by using the label found in the incoming packet as a reference to a label forwarding table. At the network egress (or one hop prior), a forwarding decision is made based on the incoming label but no label is included when the IP packet is sent on to the next hop. In other scenarios, the incoming packet that is carried in this way is itself another MPLS packet such that MPLS traffic is carried over another MPLS cloud.
The paths taken by packets that traverse the network in this manner are pre-configured and referred to as label switched paths (LSPs). To assure that traffic is forwarded correctly, each LSR creates “bindings” between IP forwarding equivalence classes and the labels to be used as the index to the forwarding table at that LSR. The previous LSR in line on the LSP must then be informed of these label bindings so that it will correctly encapsulate packets it forwards to the next hop.
Several mechanisms have been developed for the distribution of labels. One is the Label Distribution Protocol (LDP) as described in Andersson, et al., “LDP Specification,” RFC 3036, Internet Engineering Task Force, January 2001. LDP provides mechanisms for LSR peers to discover one another and establish communications. LDP also includes mechanisms to tear down sessions, to advertise label bindings, to withdraw previously advertised bindings, and to provide various other types of notification. LDP messages are generally specified as sets of TLV (type, length, value) encoded objects.
LDP can be used to establish and operate LSPs that traverse a pair of routers only when there is an LDP session between the routers. When label switching is to be discontinued, it is desirable that the discontinuation be graceful. Once an LSR discontinues label switching with a peer, MPLS traffic from that peer will be dropped. Thus it is important that both LSRs participating in a session coordinate the discontinuation of label switching so that no traffic is lost. The current LDP specification includes certain provisions which can be used to implement graceful mechanisms to discontinue LDP-based label switching between two LSRs without loss of MPLS traffic.
A complication arises, however, where multiple parallel links are available between two LSRs. LDP will typically operate all of the parallel links under a single LDP session. In certain situations multiple LDP sessions will operate between the two LSRs by using different label spaces. MPLS traffic of a given session can be divided over the multiple links for load-balancing purposes. In certain situations, it will be desirable to discontinue LDP label switching on one or more of the multiple links while continuing label switching on the remaining LDP-enabled links. LDP-related MPLS traffic will then continue flowing on the remaining LDP-enabled links supporting the active session and able to perform label switching. LDP makes no provision for a graceful shutdown of label switching on only selected ones of multiple links. Such a capability is desired.
One technique for providing this capability involves adjustment of underlying routing metrics. If LDP path selection is based on paths learned via an IGP (Interior Gateway Protocol), one can increase the “cost” of links over which a traffic halt is desired. This technique carries several drawbacks. Both MPLS and IP traffic are shifted off these links, causing unnecessary rerouting of traffic. When the IGP costs are modified they must be advertised throughout the network, requiring a large volume of unnecessary routing messages. Also, LDP may learn its paths from static routing rather than IGP, rendering the technique completely useless.